home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr10 / v12n12.zip / PRTSCR.PRG < prev   
Text File  |  1993-02-20  |  3KB  |  140 lines

  1. *********************************************************************
  2. * Demonstrate the PRNTSCR() function
  3. *********************************************************************
  4. CLEAR
  5. OldColor = SETCOLOR("W+/R")
  6. nR = MAXROW()
  7. nC = MAXCOL()
  8. cText = "PC Magazine "
  9. cPcmag = REPLICATE(cText, (nC / LEN(cText)) + 1  )
  10. @ 0, 0 TO nR, nC
  11. FOR i = 1 to (nR - 1)
  12.       @ i,1 SAY LEFT(cPcmag, nC - 1)
  13. NEXT
  14. Prntscr("Sample Header","Sample Footer", .T.)
  15. RETURN
  16.  
  17. *********************************************************************
  18. * FUNCTION Prntscr - Send current screen to printer
  19. * Optional parameters: cHeader, cFooter, lFormfeed
  20. *********************************************************************
  21. FUNCTION Prntscr
  22. PARAMETERS cHeader, cFooter, lFormfeed
  23. LOCAL nRows, nCols, nLine, nPos, nRow, nCol, cChar
  24. LOCAL nMsgrow, nMsgcol
  25. nRows = MAXROW()
  26. nCols = MAXCOL()
  27. nLine = 2 * (nCols + 1)
  28. STORE 0 TO nRow, nCol, nPos
  29. cChar = " "
  30. SAVE SCREEN TO cScreen
  31. nMsgcol = INT((nCols - 40) / 2)
  32. nMsgrow = INT((nRows - 4) / 2)
  33. @ nMsgrow, nMsgcol CLEAR TO nMsgrow + 4, nMsgcol + 40
  34. @ nMsgrow + 1, nMsgcol + 1 TO nMsgrow + 3, nMsgcol + 39 DOUBLE
  35. @ nMsgrow + 2, nMsgcol + 12 SAY "Printing screen . . . "
  36. SET PRINT ON
  37. SET CONSOLE OFF
  38. IF cHeader != NIL
  39.   ?
  40.   ?
  41.   ?
  42.   ? cHeader
  43.   ?
  44.   ?
  45.   ?
  46. ENDIF
  47. FOR nRow = 0 TO nRows+1
  48.     FOR nCol = 0 TO nCols
  49.         nPos = 1 + (nCol * 2) + (nRow * nLine)
  50.         cChar = SUBSTR(cScreen, nPos, 1)
  51.         ?? cChar
  52.     NEXT
  53.     ?
  54. NEXT
  55. IF cFooter != NIL
  56.   ?
  57.   ?
  58.   ? cFooter
  59. ENDIF
  60. IF lFormfeed != NIL
  61.   EJECT
  62. ENDIF
  63. SET PRINT OFF
  64. SET CONSOLE ON
  65. RESTORE SCREEN FROM cScreen
  66. RETURN .T.
  67.  
  68. * Dale Shaw
  69. * 100033,2241
  70. * 26 Maioro Street
  71. * Avondale
  72. * Auckland
  73. * NEW ZEALAND
  74. *********************************************************************
  75. * PRTSCR.PRG - Demonstrate the PRNTSCR() function
  76. *********************************************************************
  77. CLEAR
  78. OldColor = SETCOLOR("W+/R")
  79. nR = MAXROW()
  80. nC = MAXCOL()
  81. cText = "PC Magazine "
  82. cPcmag = REPLICATE(cText, (nC / LEN(cText)) + 1  )
  83. @ 0, 0 TO nR, nC
  84. FOR i = 1 to (nR - 1)
  85.       @ i,1 SAY LEFT(cPcmag, nC - 1)
  86. NEXT
  87. Prntscr("Sample Header","Sample Footer", .T.)
  88. RETURN
  89.  
  90. *********************************************************************
  91. * FUNCTION Prntscr - Send current screen to printer
  92. * Optional parameters: cHeader, cFooter, lFormfeed
  93. *********************************************************************
  94. FUNCTION Prntscr
  95. PARAMETERS cHeader, cFooter, lFormfeed
  96. LOCAL nRows, nCols, nLine, nPos, nRow, nCol, cChar
  97. LOCAL nMsgrow, nMsgcol
  98. nRows = MAXROW()
  99. nCols = MAXCOL()
  100. nLine = 2 * (nCols + 1)
  101. STORE 0 TO nRow, nCol, nPos
  102. cChar = " "
  103. SAVE SCREEN TO cScreen
  104. nMsgcol = INT((nCols - 40) / 2)
  105. nMsgrow = INT((nRows - 4) / 2)
  106. @ nMsgrow, nMsgcol CLEAR TO nMsgrow + 4, nMsgcol + 40
  107. @ nMsgrow + 1, nMsgcol + 1 TO nMsgrow + 3, nMsgcol + 39 DOUBLE
  108. @ nMsgrow + 2, nMsgcol + 12 SAY "Printing screen . . . "
  109. SET PRINT ON
  110. SET CONSOLE OFF
  111. IF cHeader != NIL
  112.   ?
  113.   ?
  114.   ?
  115.   ? cHeader
  116.   ?
  117.   ?
  118.   ?
  119. ENDIF
  120. FOR nRow = 0 TO nRows + 1
  121.     FOR nCol = 0 TO nCols
  122.         nPos = 1 + (nCol * 2) + (nRow * nLine)
  123.         cChar = SUBSTR(cScreen, nPos, 1)
  124.         ?? cChar
  125.     NEXT
  126.     ?
  127. NEXT
  128. IF cFooter != NIL
  129.   ?
  130.   ?
  131.   ? cFooter
  132. ENDIF
  133. IF lFormfeed != NIL
  134.   EJECT
  135. ENDIF
  136. SET PRINT OFF
  137. SET CONSOLE ON
  138. RESTORE SCREEN FROM cScreen
  139. RETURN .T.
  140.